package cn.tedu.review;
/**本类用于复写单例设计模式方案1：饿汉式*/
public class Singleton1 {
    public static void main(String[] args) {
        //6.通过类名调用getSingle()来获取MySingle类对象
        MySingle s1 = MySingle.getSingle();
        MySingle s2 = MySingle.getSingle();

        System.out.println(s1);
        System.out.println(s2);

//        MySingle single = MySingle.single;//所以需要给MySingle的创建对象加上
    }
}

//1.创建自己的单例程序
class MySingle{
    //2.提供构造函数并私有化----与本类类名同名，且没有返回的值的方法----不让外界使用
    private MySingle(){ }

    //3.创建本类对象，将对象的地址值交给引用类型的变量single来保存
    //5.2由于静态资源只能静态资源，所以single对象也需要设置为静态
    //7.将创建对象设置为私有的private，是为了使用getSingle()，而不通过类名.来创建对象
    static MySingle single = new MySingle();

    //4.提供一个公共的访问方式，向外界提供创建好的唯一的本类对象
    //5.1将方法设置为静态，外界可以通过类名调用此方法，无需创建对象
    public static MySingle getSingle(){
        return single;
    }


    public int eat(){
        return 123;
    }
}
